package com.sromku.simple.fb;
import com.facebook.internal.SessionAuthorizationType;
/**
* Hopefully all facebook permissions.
*
* @author sromku
* @see https://developers.facebook.com/docs/reference/login/
* @see https://developers.facebook.com/docs/reference/fql/permissions/
*/
public enum Permission {
BASIC_INFO("basic_info", Type.READ),
PUBLIC_PROFILE("public_profile", Type.READ),
USER_ABOUT_ME("user_about_me", Type.READ),
FRIENDS_ABOUT_ME("friends_about_me", Type.READ),
USER_ACTIVITIES("user_activities", Type.READ),
FRIENDS_ACTIVITIES("friends_activities", Type.READ),
USER_BIRTHDAY("user_birthday", Type.READ),
FRIENDS_BIRTHDAY("friends_birthday", Type.READ),
USER_CHECKINS("user_checkins", Type.READ),
FRIENDS_CHECKINS("friends_checkins", Type.READ),
USER_EDUCATION_HISTORY("user_education_history", Type.READ),
FRIENDS_EDUCATION_HISTORY("friends_education_history", Type.READ),
USER_EVENTS("user_events", Type.READ),
FRIENDS_EVENTS("friends_events", Type.READ),
USER_GROUPS("user_groups", Type.READ),
FRIENDS_GROUPS("friends_groups", Type.READ),
USER_HOMETOWN("user_hometown", Type.READ),
FRIENDS_HOMETOWN("friends_hometown", Type.READ),
USER_INTERESTS("user_interests", Type.READ),
FRIENDS_INTERESTS("friends_interests", Type.READ),
USER_PHOTOS("user_photos", Type.READ),
FRIENDS_PHOTOS("friends_photos", Type.READ),
USER_LIKES("user_likes", Type.READ),
FRIENDS_LIKES("friends_likes", Type.READ),
USER_NOTES("user_notes", Type.READ),
FRIENDS_NOTES("friends_notes", Type.READ),
USER_ONLINE_PRESENCE("user_online_presence", Type.READ),
FRIENDS_ONLINE_PRESENCE("friends_online_presence", Type.READ),
USER_RELIGION_POLITICS("user_religion_politics", Type.READ),
FRIENDS_RELIGION_POLITICS("friends_religion_politics", Type.READ),
USER_RELATIONSHIPS("user_relationships", Type.READ),
FRIENDS_RELATIONSHIPS("friends_relationships", Type.READ),
USER_RELATIONSHIP_DETAILS("user_relationship_details", Type.READ),
FRIENDS_RELATIONSHIP_DETAILS("friends_relationship_details", Type.READ),
USER_STATUS("user_status", Type.READ),
FRIENDS_STATUS("friends_status", Type.READ),
USER_SUBSCRIPTIONS("user_subscriptions", Type.READ),
FRIENDS_SUBSCRIPTIONS("friends_subscriptions", Type.READ),
USER_VIDEOS("user_videos", Type.READ),
FRIENDS_VIDEOS("friends_videos", Type.READ),
USER_WEBSITE("user_website", Type.READ),
FRIENDS_WEBSITE("friends_website", Type.READ),
USER_WORK_HISTORY("user_work_history", Type.READ),
FRIENDS_WORK_HISTORY("friends_work_history", Type.READ),
USER_LOCATION("user_location", Type.READ),
FRIENDS_LOCATION("friends_location", Type.READ),
USER_PHOTO_VIDEO_TAGS("user_photo_video_tags", Type.READ),
FRIENDS_PHOTO_VIDEO_TAGS("friends_photo_video_tags", Type.READ),
READ_FRIENDLISTS("read_friendlists", Type.READ),
READ_MAILBOX("read_mailbox", Type.READ),
READ_REQUESTS("read_requests", Type.READ),
READ_STREAM("read_stream", Type.READ),
READ_INSIGHTS("read_insights", Type.READ),
XMPP_LOGIN("xmpp_login", Type.READ),
EMAIL("email", Type.READ),
PUBLISH_ACTION("publish_actions", Type.PUBLISH),
PUBLISH_STREAM("publish_stream", Type.PUBLISH),
ADS_MANAGMENT("ads_management", Type.PUBLISH),
CREATE_EVENT("create_event", Type.PUBLISH),
RSVP_EVENT("rsvp_event", Type.PUBLISH),
MANAGE_FRIENDLIST("manage_friendlists", Type.PUBLISH),
MANAGE_NOTIFICATIONS("manage_notifications", Type.PUBLISH),
MANAGE_PAGES("manage_pages", Type.PUBLISH);
/**
* Permission type enum: <li>READ</li> <li>PUBLISH</li><br>
*/
public static enum Type {
PUBLISH(SessionAuthorizationType.PUBLISH),
READ(SessionAuthorizationType.READ);
private SessionAuthorizationType sessionAuthorizationType;
private Type(SessionAuthorizationType sessionAuthorizationType) {
this.sessionAuthorizationType = sessionAuthorizationType;
}
};
public static enum Role {
/**
* Manage admins<br>
* Full Admin
*/
ADMINISTER,
/**
* Edit the Page and add apps<br>
* Full Admin, Content Creator
*/
EDIT_PROFILE,
/**
* Create posts as the Page<br>
* Full Admin, Content Creator
*/
CREATE_CONTENT,
/**
* Respond to and delete comments, send messages as the Page<br>
* Full Admin, Content Creator, Moderator
*/
MODERATE_CONTENT,
/**
* Create ads and unpublished page posts<br>
* Full Admin, Content Creator, Moderator, Ads Creator
*/
CREATE_ADS,
/**
* View Insights<br>
* Full Admin, Content Creator, Moderator, Ads Creator, Insights Manager
*/
BASIC_ADMIN
}
private String mValue;
private SessionAuthorizationType mType;
private Permission(String value, Type type) {
mValue = value;
mType = type.sessionAuthorizationType;
}
public String getValue() {
return mValue;
}
public SessionAuthorizationType getType() {
return mType;
}
public static Permission fromValue(String pemissionValue) {
for (Permission permission : values()) {
if (permission.mValue.equals(pemissionValue)) {
return permission;
}
}
return null;
}
}